package com.zjdiepu.www.model.yw.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;

import com.alibaba.fastjson.annotation.JSONField;
import com.zjdiepu.www.base.enums.status.ApplyDiviStatus;
import com.zjdiepu.www.base.enums.status.InterviewStatus;
import com.zjdiepu.www.base.enums.status.OpenCardStatus;
/**
 * 项目名称：dpqc-parent-manager-information <br/> 
 * 类名称：YwBusinessDetail <br/>  
 * 类描述： 业务数据详情<br/>    
 * 创建人：xiongxiaotun <br/> 
 * 创建时间：2017年4月26日 上午11:44:39  <br/>   
 * 修改人：xiongxiaotun <br/> 
 * 修改时间：2017年4月26日 上午11:44:39   <br/>  
 * 修改备注：    <br/> 
 * @version V1.0   <br/>
 */
@ApiModel(value="YwBusinessDetail", description="业务详情")
public class YwBusinessDetail implements Serializable{

	private static final long serialVersionUID = -6497202908519464708L;
	/**
	 * @author xiongxiaotun <br/>
	 * @Title: isCompleted  <br/>
	 * @Description: 是否完成资料录入 <br/>
	 * @return
	 * @version V1.0  <br/>
	 */
	public boolean isCompleted(){
		if(!StringUtils.isNoneBlank(queryCreditApplyId, creditQueryId, dealerId, customerId, customerName,
				customerNo, busiCode,orgName,dealerName,salesmanName,dealerLevel)) {//不含空
			return false;
		}
		
		if(!ObjectUtils.allNotNull(submitTime)) {
			return false;
		}
		
		return true;
	}
	/**
	 * 主键
	 */
	@JSONField(name = "replaceId")
	@ApiModelProperty(name="id",required=false,value="主键",example="1")
	private String id;
	
	/**
	 * 征信查询申请ID
	 */
	@ApiModelProperty(name="queryCreditApplyId",required=false,value="征信查询申请ID",example="征信查询申请ID")
	private String queryCreditApplyId;
	
	/**
	 * 征信查询结果ID
	 */
	@ApiModelProperty(name="creditQueryId",required=false,value="征信查询结果ID",example="征信查询结果ID")
	private String creditQueryId;
	
	/**
	 * 经销商ID
	 */
	@ApiModelProperty(name="dealerId",required=false,value="经销商ID",example="经销商ID")
	private String dealerId;
	
	/**
	 * 业务员ID
	 */
	@ApiModelProperty(name="salesmanId",required=false,value="业务员ID",example="业务员ID")
	private String salesmanId;
	
	/**
	 * 业务员编码
	 */
	@ApiModelProperty(name="salesmanCode",required=false,value="业务员编码",example="业务员编码")
	private String salesmanCode;
	
	/**
	 * 客户ID
	 */
	@ApiModelProperty(name="customerId",required=false,value="客户ID",example="客户ID")
	private String customerId;
	
	/**
	 * 客户姓名
	 */
	@ApiModelProperty(name="customerName",required=false,value="客户姓名",example="客户姓名")
	private String customerName;
	
	/**
	 * 客户身份证号
	 */
	@ApiModelProperty(name="customerNo",required=false,value="客户身份证号",example="客户身份证号")
	private String customerNo;
	
	/**
	 * 业务编号
	 */
	@ApiModelProperty(name="busiCode",required=false,value="业务编号",example="业务编号")
	private String busiCode;
	
	/**
	 * 业务提交时间
	 */
	@ApiModelProperty(name="submitTime",required=false,value="业务提交时间",example="2017-04-23 14:22:43")
	private Date submitTime;
	
	/**
	 * 开卡申请提交时间
	 */
	@ApiModelProperty(name="timeApplyOpencard",required=false,value="开卡申请提交时间",example="2017-04-23 14:22:43")
	private Date timeApplyOpencard;
	
	/**
	 * 风控完成审核时间
	 */
	@ApiModelProperty(name="timeAuditFinish",required=false,value="风控完成审核时间",example="2017-04-23 14:22:43")
	private Date timeAuditFinish;
	
	/**
	 * 通道类型
	 */
	@ApiModelProperty(name="channelType",required=false,value="通道类型",example="通道类型")
	private String channelType;
	
	/**
	 * 通道状态
	 */
	@ApiModelProperty(name="channelStatus",required=false,value="通道状态",example="2")
	private Integer channelStatus;
	
	/**
	 * 组织编码
	 */
	@ApiModelProperty(name="orgCode",required=false,hidden=true)
	private String orgCode;
	/**
	 * 组织名称
	 */
	@ApiModelProperty(name="orgName",required=false,hidden=true)
	private String orgName;
	/**
	 * 省总公司名称
	 */
	@ApiModelProperty(name="proviceOrgName",required=false,hidden=true)
	private String proviceOrgName;
	/**
	 * 经销商名称
	 */
	@ApiModelProperty(name="dealerName",required=false,hidden=true)
	private String dealerName;
	
	/**
	 * 业务员名称
	 */
	@ApiModelProperty(name="salesmanName",required=false,hidden=true)
	private String salesmanName;
	
	/**
	 * 欠资料装填
	 */
	@ApiModelProperty(name="salesmanName",required=false,example="2")
	private Integer lessInformationStatus;
	
	/**
	 * 经销商等级
	 */
	private String dealerLevel;
	
	/**
	 * 实际贷款额
	 */
	@ApiModelProperty(name="realLoanAmount",required=false,value="实际贷款额",example="0")
	private Double realLoanAmount;
	
	/**
	 * 贷款银行
	 */
	@ApiModelProperty(name="loanBank",required=false,value="贷款银行",example="贷款银行")
	private String loanBank;
	
	
	/**
	 * 贷款模式
	 */
	@ApiModelProperty(name="loanType",required=false,value="贷款模式",example="贷款模式")
	private String loanType;
	

	/**
	 * 电审状态
	 */
	@ApiModelProperty(name="phoneStatus",required=false,value="电审状态",example="10")
	private Integer phoneStatus;
	
	/**
	 * 业务状态
	 */
	@ApiModelProperty(name="busiStatus",required=false,value="业务状态",example="10")
	private Integer busiStatus;
	

	/**
	 * 资金渠道
	 */
	@ApiModelProperty(name="fundChannel",required=false,value="资金渠道",example="资金渠道")
	private String fundChannel;
	
	/**
	 * 业务类型
	 */
	@ApiModelProperty(name="busiType",required=false,value="业务类型",example="业务类型")
	private String busiType;
	
	/**
	 * 第三方渠道业务状态值
	 */
	@ApiModelProperty(name="thirdBusiStatus",required=false,value="第三方渠道业务状态值",example="第三方渠道业务状态值")
	private Integer thirdBusiStatus;
	 
	/**
	 * 第三方实际募集金额
	 */
	@ApiModelProperty(name="actualRaiseFee",required=false,value="第三方渠道业务状态值",example="第三方渠道业务状态值")
	private BigDecimal actualRaiseFee;
	
	/**
	 * 资金到账状态
	 */
	@ApiModelProperty(name="fundToAccountStatus",required=false,value="资金到账状态",example="资金到账状态")
	private String fundToAccountStatus;
	
	/**
	 * 额外状态值1
	 */
	@ApiModelProperty(name="addedStatus1",required=false,value="额外状态值1",example="0")
	private Integer addedStatus1;
	
	/**
	 * 提车时间
	 */
	@ApiModelProperty(name="pickCarTime",required=false,value="提车时间",example="2017-04-23 14:22:43")
	private Date pickCarTime;
	
	/**
	 * 上牌时间
	 */
	@ApiModelProperty(name="licensePlateTime",required=false,value="上牌时间",example="2017-04-23 14:22:43")
	private Date licensePlateTime;
	
	/**
	 * 抵押时间
	 */
	@ApiModelProperty(name="pledgeTime",required=false,value="抵押时间",example="2017-04-23 14:22:43")
	private Date pledgeTime;
	
	/**
	 * 银行放款时间
	 */
	@ApiModelProperty(name="timeLending",required=false,value="银行放款时间",example="2017-04-23 14:22:43")
	private Date timeLending;
	
	/**
	 * 车辆性质
	 */
	@ApiModelProperty(name="carType",required=false,value="车辆性质",example="车辆性质")
	private String carType;
	/**
	 * 分期状态
	 * {@link ApplyDiviStatus}
	 */
	@ApiModelProperty(name="applyDiviStatus",required=false,value="分期状态",example="0")
	private Integer applyDiviStatus;
	
	/**
	 * 开卡状态
	 * {@link OpenCardStatus}
	 */
	@ApiModelProperty(name="openCardStatus",required=false,value="开卡状态",example="0")
	private Integer openCardStatus;
	/**
	 * 面签状态
	 * {@link InterviewStatus}
	 */
	@ApiModelProperty(name="interviewStatus",required=false,value="面签状态",example="0")
	private Integer interviewStatus;
	/**
	 * 面签时间
	 */
	@ApiModelProperty(name="interviewTime",required=false,value="面签时间",example="0")
	private Date interviewTime;
	
//	==========================辅助字段=======================
	/**
	 * 贷款模式显示
	 */
	@ApiModelProperty(name="loantypeDisplay",required=false,value="贷款模式显示",example="贷款模式显示")
	private String loanTypeDisplay;
	/**
	 * 通道类型显示
	 */
	@ApiModelProperty(name="channelTypeDisplay",required=false,value="通道类型显示",example="通道类型显示")
	private String channelTypeDisplay;
	
	/**
	 * 通道状态显示
	 */
	@ApiModelProperty(name="channelStatusDisplay",required=false,hidden=true)
	private String channelStatusDisplay;
	
	/**
	 * 经销商等级显示
	 */
	@ApiModelProperty(name="dealerLevelDisplay",required=false,hidden=true)
	private String dealerLevelDisplay;
	
	/**
	 * 贷款银行
	 */
	@ApiModelProperty(name="loanBankDisplay",required=false,value="贷款银行",example="贷款银行")
	private String loanBankDisplay;
	/**
	 * 资金渠道
	 */
	@ApiModelProperty(name="fundChannelDisplay",required=false,value="资金渠道",example="资金渠道")
	private String fundChannelDisplay;
	
	/**
	 * 业务类型
	 */
	@ApiModelProperty(name="busiTypeDisplay",required=false,value="业务类型",example="业务类型")
	private String busiTypeDisplay;
	
	/**
	 * 第三方渠道业务状态值
	 */
	@ApiModelProperty(name="thirdBusiStatusDisplay",required=false,value="第三方渠道业务状态值",example="第三方渠道业务状态值")
	private String thirdBusiStatusDisplay;
	
	/**
	 * 资金到账状态
	 */
	@ApiModelProperty(name="fundToAccountStatusDisplay",required=false,value="资金到账状态",example="资金到账状态")
	private String fundToAccountStatusDisplay;
	
	/**
	 * 打包附件操作
	 * 1：暂无
	 * 2: 生成中
	 * 3：下载
	 * 4：生成
	 */
	@ApiModelProperty(name="operationType",required=false,value="打包附件操作",example="打包附件操作")
	private Integer operationType;
	/**
	 * 打包附件操作
	 */
	@ApiModelProperty(name="operationName",required=false,value="打包附件操作",example="打包附件操作")
	private String operationName;
	/**
	 * RAR附件打包名称
	 */
	@ApiModelProperty(name="rarName",required=false,value=" RAR附件打包名称",example=" RAR附件打包名称")
	private String rarName;
	/**
	 * RAR附件打包地址
	 */
	@ApiModelProperty(name="rarOssPath",required=false,value="RAR附件打包地址",example="RAR附件打包地址")
	private String rarOssPath;
	
	
	/**
	 * 打包附件操作
	 * 1：暂无
	 * 2: 生成中
	 * 3：下载
	 * 4：生成
	 */
	@ApiModelProperty(name="xhhOperationType",required=false,value="鑫合汇打包附件操作",example="鑫合汇打包附件操作")
	private Integer xhhOperationType;
	/**
	 * 打包附件操作
	 */
	@ApiModelProperty(name="xhhOperationName",required=false,value="鑫合汇打包附件操作",example="鑫合汇打包附件操作")
	private String xhhOperationName;
	/**
	 * RAR附件打包名称
	 */
	@ApiModelProperty(name="xhhRarName",required=false,value="鑫合汇RAR附件打包名称",example="鑫合汇RAR附件打包名称")
	private String xhhRarName;
	/**
	 * RAR附件打包地址
	 */
	@ApiModelProperty(name="xhhRarOssPath",required=false,value="鑫合汇RAR附件打包地址",example="鑫合汇RAR附件打包地址")
	private String xhhRarOssPath;
	/**
	 * 分期状态
	 * {@link ApplyDiviStatus}
	 */
	@ApiModelProperty(name="applyDiviStatusDisplay",required=false,value="分期状态",example="0")
	private String applyDiviStatusDisplay;
	
	/**
	 * 开卡状态
	 * {@link OpenCardStatus}
	 */
	@ApiModelProperty(name="openCardStatusDisplay",required=false,value="开卡状态",example="0")
	private String openCardStatusDisplay;
	
	/**
	 * 档案编号
	 */
	@ApiModelProperty(name="noRecord",required=false,value="档案编号",example="2SDF3423")
	private String noRecord;
	
	public Integer getApplyDiviStatus() {
		return applyDiviStatus;
	}

	public void setApplyDiviStatus(Integer applyDiviStatus) {
		this.applyDiviStatus = applyDiviStatus;
	}

	public Integer getOpenCardStatus() {
		return openCardStatus;
	}

	public void setOpenCardStatus(Integer openCardStatus) {
		this.openCardStatus = openCardStatus;
	}

	public String getProviceOrgName() {
		return proviceOrgName;
	}

	public void setProviceOrgName(String proviceOrgName) {
		this.proviceOrgName = proviceOrgName;
	}

	public Date getTimeAuditFinish() {
		return timeAuditFinish;
	}

	public void setTimeAuditFinish(Date timeAuditFinish) {
		this.timeAuditFinish = timeAuditFinish;
	}
	
	public final Integer getBusiStatus() {
		return busiStatus;
	}

	public final void setBusiStatus(Integer busiStatus) {
		this.busiStatus = busiStatus;
	}

	public final Integer getPhoneStatus() {
		return phoneStatus;
	}

	public Date getLicensePlateTime() {
		return licensePlateTime;
	}

	public void setLicensePlateTime(Date licensePlateTime) {
		this.licensePlateTime = licensePlateTime;
	}

	public final void setPhoneStatus(Integer phoneStatus) {
		this.phoneStatus = phoneStatus;
	}

	public final String getLoanBankDisplay() {
		return loanBankDisplay;
	}

	public final void setLoanBankDisplay(String loanBankDisplay) {
		this.loanBankDisplay = loanBankDisplay;
	}
	
	public Integer getAddedStatus1() {
		return addedStatus1;
	}

	public void setAddedStatus1(Integer addedStatus1) {
		this.addedStatus1 = addedStatus1;
	}
	
	public Date getPickCarTime() {
		return pickCarTime;
	}

	public void setPickCarTime(Date pickCarTime) {
		this.pickCarTime = pickCarTime;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getQueryCreditApplyId() {
		return queryCreditApplyId;
	}

	public void setQueryCreditApplyId(String queryCreditApplyId) {
		this.queryCreditApplyId = queryCreditApplyId;
	}

	public String getCreditQueryId() {
		return creditQueryId;
	}

	public void setCreditQueryId(String creditQueryId) {
		this.creditQueryId = creditQueryId;
	}

	public String getDealerId() {
		return dealerId;
	}

	public void setDealerId(String dealerId) {
		this.dealerId = dealerId;
	}

	public Date getTimeApplyOpencard() {
		return timeApplyOpencard;
	}

	public void setTimeApplyOpencard(Date timeApplyOpencard) {
		this.timeApplyOpencard = timeApplyOpencard;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getCustomerNo() {
		return customerNo;
	}

	public void setCustomerNo(String customerNo) {
		this.customerNo = customerNo;
	}

	public String getBusiCode() {
		return busiCode;
	}

	public void setBusiCode(String busiCode) {
		this.busiCode = busiCode;
	}

	public Date getSubmitTime() {
		return submitTime;
	}

	public void setSubmitTime(Date submitTime) {
		this.submitTime = submitTime;
	}
	
	public String getCarType() {
		return carType;
	}

	public void setCarType(String carType) {
		this.carType = carType;
	}

	public Integer getChannelStatus() {
		return channelStatus;
	}

	public void setChannelStatus(Integer channelStatus) {
		this.channelStatus = channelStatus;
	}

	public String getOrgCode() {
		return orgCode;
	}

	public void setOrgCode(String orgCode) {
		this.orgCode = orgCode;
	}

	public String getOrgName() {
		return orgName;
	}

	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

	public String getDealerName() {
		return dealerName;
	}

	public void setDealerName(String dealerName) {
		this.dealerName = dealerName;
	}

	public String getSalesmanName() {
		return salesmanName;
	}

	public void setSalesmanName(String salesmanName) {
		this.salesmanName = salesmanName;
	}

	public String getDealerLevel() {
		return dealerLevel;
	}

	public void setDealerLevel(String dealerLevel) {
		this.dealerLevel = dealerLevel;
	}

	public String getChannelStatusDisplay() {
		return channelStatusDisplay;
	}

	public void setChannelStatusDisplay(String channelStatusDisplay) {
		this.channelStatusDisplay = channelStatusDisplay;
	}

	public String getDealerLevelDisplay() {
		return dealerLevelDisplay;
	}

	public void setDealerLevelDisplay(String dealerLevelDisplay) {
		this.dealerLevelDisplay = dealerLevelDisplay;
	}

	public Double getRealLoanAmount() {
		return realLoanAmount;
	}

	public void setRealLoanAmount(Double realLoanAmount) {
		this.realLoanAmount = realLoanAmount;
	}

	public String getChannelType() {
		return channelType;
	}
	
	public String getSalesmanId() {
		return salesmanId;
	}

	public void setSalesmanId(String salesmanId) {
		this.salesmanId = salesmanId;
	}

	public String getSalesmanCode() {
		return salesmanCode;
	}

	public void setSalesmanCode(String salesmanCode) {
		this.salesmanCode = salesmanCode;
	}

	public void setChannelType(String channelType) {
		this.channelType = channelType;
	}

	public String getChannelTypeDisplay() {
		return channelTypeDisplay;
	}

	public void setChannelTypeDisplay(String channelTypeDisplay) {
		this.channelTypeDisplay = channelTypeDisplay;
	}

	public final String getLoanBank() {
		return loanBank;
	}

	public final void setLoanBank(String loanBank) {
		this.loanBank = loanBank;
	}

	public final String getLoanType() {
		return loanType;
	}

	public final void setLoanType(String loanType) {
		this.loanType = loanType;
	}

	public final String getLoanTypeDisplay() {
		return loanTypeDisplay;
	}

	public final void setLoanTypeDisplay(String loanTypeDisplay) {
		this.loanTypeDisplay = loanTypeDisplay;
	}

	public Integer getLessInformationStatus() {
		return lessInformationStatus;
	}

	public void setLessInformationStatus(Integer lessInformationStatus) {
		this.lessInformationStatus = lessInformationStatus;
	}

	public String getFundChannel() {
		return fundChannel;
	}

	public void setFundChannel(String fundChannel) {
		this.fundChannel = fundChannel;
	}

	public String getBusiType() {
		return busiType;
	}

	public void setBusiType(String busiType) {
		this.busiType = busiType;
	}

	public String getFundToAccountStatus() {
		return fundToAccountStatus;
	}

	public void setFundToAccountStatus(String fundToAccountStatus) {
		this.fundToAccountStatus = fundToAccountStatus;
	}

	public String getFundChannelDisplay() {
		return fundChannelDisplay;
	}

	public void setFundChannelDisplay(String fundChannelDisplay) {
		this.fundChannelDisplay = fundChannelDisplay;
	}

	public String getBusiTypeDisplay() {
		return busiTypeDisplay;
	}

	public void setBusiTypeDisplay(String busiTypeDisplay) {
		this.busiTypeDisplay = busiTypeDisplay;
	}

	public String getFundToAccountStatusDisplay() {
		return fundToAccountStatusDisplay;
	}

	public void setFundToAccountStatusDisplay(String fundToAccountStatusDisplay) {
		this.fundToAccountStatusDisplay = fundToAccountStatusDisplay;
	}

	public Integer getOperationType() {
		return operationType;
	}

	public void setOperationType(Integer operationType) {
		this.operationType = operationType;
	}

	public String getOperationName() {
		return operationName;
	}

	public void setOperationName(String operationName) {
		this.operationName = operationName;
	}

	public String getRarName() {
		return rarName;
	}

	public void setRarName(String rarName) {
		this.rarName = rarName;
	}

	public String getRarOssPath() {
		return rarOssPath;
	}

	public void setRarOssPath(String rarOssPath) {
		this.rarOssPath = rarOssPath;
	}

	public Date getPledgeTime() {
		return pledgeTime;
	}

	public void setPledgeTime(Date pledgeTime) {
		this.pledgeTime = pledgeTime;
	}

	public Date getTimeLending() {
		return timeLending;
	}

	public void setTimeLending(Date timeLending) {
		this.timeLending = timeLending;
	}

	public Integer getThirdBusiStatus() {
		return thirdBusiStatus;
	}

	public void setThirdBusiStatus(Integer thirdBusiStatus) {
		this.thirdBusiStatus = thirdBusiStatus;
	}

	public BigDecimal getActualRaiseFee() {
		return actualRaiseFee;
	}

	public void setActualRaiseFee(BigDecimal actualRaiseFee) {
		this.actualRaiseFee = actualRaiseFee;
	}

	public String getThirdBusiStatusDisplay() {
		return thirdBusiStatusDisplay;
	}

	public void setThirdBusiStatusDisplay(String thirdBusiStatusDisplay) {
		this.thirdBusiStatusDisplay = thirdBusiStatusDisplay;
	}

	public Integer getXhhOperationType() {
		return xhhOperationType;
	}

	public void setXhhOperationType(Integer xhhOperationType) {
		this.xhhOperationType = xhhOperationType;
	}

	public String getXhhOperationName() {
		return xhhOperationName;
	}

	public void setXhhOperationName(String xhhOperationName) {
		this.xhhOperationName = xhhOperationName;
	}

	public String getXhhRarName() {
		return xhhRarName;
	}

	public void setXhhRarName(String xhhRarName) {
		this.xhhRarName = xhhRarName;
	}

	public String getXhhRarOssPath() {
		return xhhRarOssPath;
	}

	public void setXhhRarOssPath(String xhhRarOssPath) {
		this.xhhRarOssPath = xhhRarOssPath;
	}

	public String getApplyDiviStatusDisplay() {
		return applyDiviStatusDisplay;
	}

	public void setApplyDiviStatusDisplay(String applyDiviStatusDisplay) {
		this.applyDiviStatusDisplay = applyDiviStatusDisplay;
	}

	public String getOpenCardStatusDisplay() {
		return openCardStatusDisplay;
	}

	public void setOpenCardStatusDisplay(String openCardStatusDisplay) {
		this.openCardStatusDisplay = openCardStatusDisplay;
	}

	public String getNoRecord() {
		return noRecord;
	}

	public void setNoRecord(String noRecord) {
		this.noRecord = noRecord;
	}

	public Integer getInterviewStatus() {
		return interviewStatus;
	}

	public void setInterviewStatus(Integer interviewStatus) {
		this.interviewStatus = interviewStatus;
	}

	public Date getInterviewTime() {
		return interviewTime;
	}

	public void setInterviewTime(Date interviewTime) {
		this.interviewTime = interviewTime;
	}
}
